.bg {
  position: fixed;
  inset: 0;
  background: #f3f2ef;
  z-index: 0;
  overflow: hidden;
}

/* 通用柔性色块样式 */
.blob {
  position: absolute;
  width: 500px;
  height: 700px;
  border-radius: 50% 70% 60% 40% / 50% 60% 40% 70%;
  opacity: 0.6;
  filter: blur(100px);
  animation: floatBlob 16s ease-in-out infinite;
  transition: all 1s ease;
}

.blob1 {
  background: #d8cee3;
  top: 5%;
  left: 5%;
  animation-duration: 16s;
}
.blob2 {
  background: #e6daeb;
  top: 25%;
  left: 75%;
  animation-duration: 17s;
}
.blob3 {
  background: #f5f2f7;
  top: 5%;
  left: 60%;
  animation-duration: 14s;
}
.blob4 {
  background: #a390a2;
  top: 80%;
  left: 0%;
  animation-duration: 15s;
}

@keyframes floatBlob {
  0% {
    transform: translate(0px, 0px) scale(1) rotate(0deg);
    border-radius: 50% 70% 60% 40% / 50% 60% 40% 70%;
  }
  25% {
    transform: translate(-150px, 120px) scale(1.25) rotate(40deg);
    border-radius: 35% 65% 75% 45% / 65% 35% 70% 50%;
  }
  50% {
    transform: translate(120px, -160px) scale(0.8) rotate(-30deg);
    border-radius: 60% 30% 40% 70% / 40% 75% 50% 60%;
  }
  75% {
    transform: translate(160px, 90px) scale(1.15) rotate(60deg);
    border-radius: 40% 80% 55% 30% / 75% 50% 40% 65%;
  }
  100% {
    transform: translate(0px, 0px) scale(1) rotate(0deg);
    border-radius: 50% 70% 60% 40% / 50% 60% 40% 70%;
  }
}
